﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using negocios;
using objetos;
using publico;

namespace softsales.pagina.empresa_centro_custo
{
    public partial class empresa_centro_custo_formulario : System.Web.UI.Page
    {
        OBJ_TB_EMPRESA_CENTRO_CUSTO o_tb_empresa_centro_custo = new OBJ_TB_EMPRESA_CENTRO_CUSTO();
        BLL_TB_EMPRESA_CENTRO_CUSTO b_tb_empresa_centro_custo = new BLL_TB_EMPRESA_CENTRO_CUSTO();
    
        BLL_TB_EMPRESA b_tb_empresa = new BLL_TB_EMPRESA();
        OBJ_TB_EMPRESA o_tb_empresa = new OBJ_TB_EMPRESA();

        OBJ_TB_CENTRO_CUSTO o_tb_centro_custo = new OBJ_TB_CENTRO_CUSTO();
        BLL_TB_CENTRO_CUSTO b_tb_centro_custo = new BLL_TB_CENTRO_CUSTO();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (PUB_SESSAO.Logado())
            {
               

                if (!IsPostBack)
                {
                    b_tb_centro_custo.PreencheControle(LST_CENTRO_CUSTO_DISPONIVEL, false);
                    b_tb_empresa.PreencheControleWeb(DDL_ID_EMPRESA, true);

                    LBL_TITULO_PAGINA.Text = "Empresa Centro Custo";

                    if (Request["id"] != null)
                    {
                        Editar(Request["id"].ToString());
                    }
 
                }

            }

        }

        private void Editar(String id)
        {            


            List<OBJ_TB_CENTRO_CUSTO> lista_centro_custo = new List<OBJ_TB_CENTRO_CUSTO>();
            lista_centro_custo = b_tb_centro_custo.SelecionarLista();

            LST_CENTRO_CUSTO_SELECIONADO.Items.Clear();
            foreach (OBJ_TB_EMPRESA_CENTRO_CUSTO o_tb_empresa_centro_custo in b_tb_empresa_centro_custo.SelecionarLista(string.Format("id_empresa = {0}", id), ""))
            {
                LST_CENTRO_CUSTO_SELECIONADO.Items.Add(new ListItem(lista_centro_custo.Find((centro)=>centro.id     ==o_tb_empresa_centro_custo.id_centro_custo).desc_centro_custo.ToString(), o_tb_empresa_centro_custo.id_centro_custo.ToString()));  
            }

            DDL_ID_EMPRESA.SelectedValue = id;
        }

        protected void BTN_SALVAR_Click(object sender, EventArgs e)
        {
            string msg = string.Empty;
            if(DDL_ID_EMPRESA.SelectedValue != string.Empty && LST_CENTRO_CUSTO_SELECIONADO.Items.Count > 0)
            {

                foreach(OBJ_TB_EMPRESA_CENTRO_CUSTO o_tb_empresa_centro_custo in b_tb_empresa_centro_custo.SelecionarLista(string.Format("tb_empresa_centro_custo.id_empresa = {0}",DDL_ID_EMPRESA.SelectedValue),""))
                {
                    b_tb_empresa_centro_custo.Excluir(o_tb_empresa_centro_custo);                        
                }


               foreach(ListItem item in LST_CENTRO_CUSTO_SELECIONADO.Items)
               {
                   o_tb_empresa_centro_custo = new OBJ_TB_EMPRESA_CENTRO_CUSTO();
                   o_tb_empresa_centro_custo.id_empresa = Convert.ToInt32(DDL_ID_EMPRESA.SelectedValue);
                   o_tb_empresa_centro_custo.id_centro_custo = Convert.ToInt32( item.Value);
                    b_tb_empresa_centro_custo.Incluir(o_tb_empresa_centro_custo);
                                    
               }
               msg = "Inclusão/Alteração realizada com sucesso";

               Master.MSG_ALERTA(msg,"default.aspx",false);
            }


        }

        protected void BTN_CANCELAR_Click(object sender, EventArgs e)
        {
            Response.Redirect("default.aspx");
        }

        protected void IMG_BTN_ADICIONAR_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                AdicionarItem();
            }
            catch (Exception)
            {
                
                throw;
            }
        }


        private void AdicionarItem()
        {
            foreach (ListItem item in LST_CENTRO_CUSTO_DISPONIVEL.Items)
            {
                if (item.Selected)
                {
                    LST_CENTRO_CUSTO_SELECIONADO.Items.Add(item);
                }
            }

            foreach (ListItem item in LST_CENTRO_CUSTO_SELECIONADO.Items)
            {
                LST_CENTRO_CUSTO_DISPONIVEL.Items.Remove(item);
            }
        }

        private void RemoverItem()
        {
            foreach (ListItem item in LST_CENTRO_CUSTO_SELECIONADO.Items)
            {
                if (item.Selected)
                {
                    LST_CENTRO_CUSTO_DISPONIVEL.Items.Add(item);
                }
            }

            foreach (ListItem item in LST_CENTRO_CUSTO_DISPONIVEL.Items)
            {
                LST_CENTRO_CUSTO_SELECIONADO.Items.Remove(item);
            }

        }

        protected void IMG_BTN_REMOVER_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                RemoverItem();
            }
            catch (Exception)
            {
                
                throw;
            }
        }
 


    }
}